<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>DAP_Info</title>
<title>CMSIS-DAP: DAP_Info</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<script type="text/javascript" src="cmsis_footer.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 46px;">
  <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">CMSIS-DAP
   &#160;<span id="projectnumber">Version 2.1.1</span>
   </div>
   <div id="projectbrief">Interface Firmware for CoreSight Debug Access Port</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <script type="text/javascript">
		<!--
		writeComponentTabs.call(this);
		//-->
      </script>
	  </ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li><a href="modules.html"><span>Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__DAP__Info.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">DAP_Info<div class="ingroups"><a class="el" href="group__DAP__genCommands__gr.html">General Commands</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Get Information about CMSIS-DAP Debug Unit.  
<a href="#details">More...</a></p>
<p>Get Information about CMSIS-DAP Debug Unit. </p>
<p>The <b>DAP_Info Command</b> provides configuration information about the Debug Unit itself and the capabilities.</p>
<p><b>DAP_Info Command:</b> </p>
<div class="fragment"><div class="line">| BYTE | BYTE |</div>
<div class="line">&gt; 0x00 | ID   |</div>
<div class="line">|******|******|</div>
</div><!-- fragment --><ul>
<li><b>ID:</b> Request Identifier to obtain information in the Response:<ul>
<li><b>0x01</b> = Get the <b>Vendor Name</b> (string).</li>
<li><b>0x02</b> = Get the <b>Product Name</b> (string).</li>
<li><b>0x03</b> = Get the <b>Serial Number</b> (string).</li>
<li><b>0x04</b> = Get the <b>CMSIS-DAP Protocol Version</b> (string).</li>
<li><b>0x05</b> = Get the <b>Target Device Vendor</b> (string).</li>
<li><b>0x06</b> = Get the <b>Target Device Name</b> (string).</li>
<li><b>0x07</b> = Get the <b>Target Board Vendor</b> (string).</li>
<li><b>0x08</b> = Get the <b>Target Board Name</b> (string).</li>
<li><b>0x09</b> = Get the <b>Product Firmware Version</b> (string, vendor-specific format).</li>
<li><b>0xF0</b> = Get information about the <b>Capabilities</b> (BYTE) of the Debug Unit (see below for details).</li>
<li><b>0xF1</b> = Get the <b>Test Domain Timer</b> parameter information (see below for details).</li>
<li><b>0xFB</b> = Get the <b>UART Receive Buffer Size</b> (WORD).</li>
<li><b>0xFC</b> = Get the <b>UART Transmit Buffer Size</b> (WORD).</li>
<li><b>0xFD</b> = Get the <b>SWO Trace Buffer Size</b> (WORD).</li>
<li><b>0xFE</b> = Get the maximum <b>Packet Count</b> (BYTE).</li>
<li><b>0xFF</b> = Get the maximum <b>Packet Size</b> (SHORT).</li>
</ul>
</li>
</ul>
<p><b>DAP_Info Response:</b> </p>
<div class="fragment"><div class="line">| BYTE | BYTE | BYTE |</div>
<div class="line">&lt; 0x00 | Len  | Info |</div>
<div class="line">|******|******|++++++|</div>
</div><!-- fragment --><ul>
<li><b>Len:</b> Info length in bytes.</li>
<li><b>Info:</b> <ul>
<li>a <b>string</b> encoded as UTF-8. Len is the string length including the \x00 terminator. Len = 0 indicates no information, and is distinct from an empty string indicated by Len = 1.</li>
<li>a <b>BYTE</b> value (indicated with Len = 1).</li>
<li>a <b>SHORT</b> value (indicated with Len = 2).</li>
<li>a <b>WORD</b> value (indicated with Len = 4).</li>
</ul>
</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>An unrecognized ID returns no value (indicated by Len = 0).</dd>
<dd>
The ID for <b>Vendor Name</b>, <b>Product Name</b>, and <b>Serial Number</b> may return no string (indicated by Len = 0). In this case the USB Device Information is used to obtain Vendor Name, Product Name, and Serial Number.</dd>
<dd>
The value of <b>CMSIS-DAP Protocol Version</b> must be one of the versions from the <a class="el" href="dap_revisionHistory.html">CMSIS-DAP revision history</a>, such as "2.1.0".</dd>
<dd>
<b>Target Device Vendor</b>, <b>Target Device Name</b>, <b>Target Board Vendor</b> and <b>Target Board Name</b> are only available on On-Board Debug Units with known Target. Refer to <a class="el" href="group__DAP__Config__Debug__gr.html#gac87f11eeee8f1df63035585b8d824737">TARGET_FIXED</a> for more information. Strings should match the listed attribute values from the corresponding CMSIS Board Support Pack. If the Target is not known no string is returned (indicated by Len = 0).</dd>
<dd>
<b>Target Device Vendor</b> should match the <a href="../../Pack/html/pdsc_boards_pg.html#element_board_mountedDevice">Dvendor</a> attribute value (excluding the colon and vendor code suffix when present) of the <code>mountedDevice</code>.</dd>
<dd>
<b>Target Device Name</b> should match the <a href="../../Pack/html/pdsc_boards_pg.html#element_board_mountedDevice">Dname</a> attribute value of the <code>mountedDevice</code>.</dd>
<dd>
<b>Target Board Vendor</b> should match the <a href="../../Pack/html/pdsc_boards_pg.html#element_board">vendor</a> attribute value (excluding the colon and vendor code suffix when present).</dd>
<dd>
<b>Target Board Name</b> should match the <a href="../../Pack/html/pdsc_boards_pg.html#element_board">name</a> attribute value.</dd>
<dd>
<b>Product Firmware Version</b> may return no string (indicated by Len = 0).</dd></dl>
<hr/>
<p><b>DAP_Info Response (for ID=0xF0):</b></p>
<p>The ID=0xF0 <b>Capabilities</b> obtains information about the available interface to the Device. The reply consists of one or two <b>Info</b> bytes with bits that indicate the features of the <b>Debug Unit</b>. The features indicate the command scope of the CMSIS-DAP firmware. If certain features are not available, the debugger should not call the related commands as the may not be implemented. Commands that are not implemented reply with 0xFF instead of repeating the command byte.</p>
<div class="fragment"><div class="line">| BYTE | BYTE | BYTE *| BYTE  |</div>
<div class="line">&lt; 0x00 | Len  | Info0 | Info1 |</div>
<div class="line">|******|******|*******|*******|</div>
</div><!-- fragment --><ul>
<li><b>Len:</b> <b>1 = Info0</b> present, <b>2 = Info0, Info1</b> present.</li>
</ul>
<p>Available transfer protocols to target:</p>
<ul>
<li>Info0 - Bit 0: <b>1 = SWD</b> Serial Wire Debug communication is implemented (0 = <a class="el" href="group__DAP__swd__gr.html">SWD Commands</a> not implemented).</li>
<li>Info0 - Bit 1: <b>1 = JTAG</b> communication is implemented (0 = <a class="el" href="group__DAP__jtag__gr.html">JTAG Commands</a> not implemented).</li>
</ul>
<p>Serial Wire Trace (SWO) support:</p>
<ul>
<li>Info0 - Bit 2: <b>1 = SWO UART</b> - UART Serial Wire Output is implemented (0 = not implemented).</li>
<li>Info0 - Bit 3: <b>1 = SWO Manchester</b> - Manchester Serial Wire Output is implemented (0 = not implemented).</li>
</ul>
<p>Command extensions for transfer protocol:</p>
<ul>
<li>Info0 - Bit 4: <b>1 = Atomic Commands</b> - <a class="el" href="group__DAP__atomic__gr.html">Atomic Commands</a> support is implemented (0 = <a class="el" href="group__DAP__atomic__gr.html">Atomic Commands</a> not implemented).</li>
</ul>
<p>Time synchronisation via Test Domain Timer:</p>
<ul>
<li>Info0 - Bit 5: <b>1 = Test Domain Timer</b> - debug unit support for Test Domain Timer is implemented (0 = not implemented).</li>
</ul>
<p>SWO Streaming Trace support:</p>
<ul>
<li>Info0 - Bit 6: <b>1 = SWO Streaming Trace</b> is implemented (0 = not implemented).</li>
</ul>
<p>UART Communication Port support:</p>
<ul>
<li>Info0 - Bit 7: <b>1 = UART Communication Port</b> is implemented (0 = not implemented).</li>
</ul>
<p>UART Communication via USB COM Port support:</p>
<ul>
<li>Info1 - Bit 0: <b>1 = USB COM Port</b> is implemented (0 = not implemented).</li>
</ul>
<hr/>
<p><b>DAP_Info Response (for ID=0xF1):</b></p>
<p>The ID=0xF1 <b>Test Domain Timer</b> obtains the parameter information about an optional 32-bit Test Domain Timer that may be used for various time measurements.</p>
<div class="fragment"><div class="line">| BYTE | BYTE | WORD *****|</div>
<div class="line">&lt; 0x00 | 0x08 | Frequency |</div>
<div class="line">|******|******|***********|</div>
</div><!-- fragment --><ul>
<li><b>Frequency:</b> Input frequency of the Test Domain Timer which indicates the resolution of the 32-bit TD_TimeStamp values. </li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">
      <script type="text/javascript">
        <!--
        writeFooter.call(this);
        //-->
      </script>    
    </li>
  </ul>
</div>
</body>
</html>
